program modificationclient;

USES
	Types,Comptes;
	

Procedure virement(ID_Compte : INTEGER; VAR tabcompte : TTabCompte);		//transformer en procedure parce que on retourne rien
																			//Définition du nom de notre fonction ainsi que ses paramètres en entrée-sortie	
	VAR	
		montant: INTEGER;
		compte2 : INTEGER;
		indicecompte2: INTEGER;
		i : INTEGER;
		ok : BOOLEAN;
	
	BEGIN
		i:=indiceCompte(ID_Compte,tabcompte);											//Fait appel à la fonction indiceCompte afin de connaître l'emplacement dans la collectionCompte
		ok:=false;														//On charge dans la var montant le solde de notre compte
		WHILE(NOT ok) DO
			Begin
				Write('Entrer le montant desirer a virer: ');
				Read(montant);
				IF(montant>tabcompte.compteclient[i].solde+tabcompte.compteclient[i].limite) THEN
					WRITE('Votre solde est de ',tabcompte.compteclient[i].solde, 'vous ne pouvez pas retirer plus')
				ELSE
					ok:=true;
		END;																			//Boucle qui demande le montant à virer et qui contrôle que ce soit bien possible en tenant compte de la limite du compte
		Write('Entrer le compte client a crediter: ');
		Read(compte2);																	//On entre les infos du compte destinataire, (on sous-entend qu'on connait le numéro de compte . On pourrait améliorer en ajouter une fonction de recherche avec des autres infors que son numéro de compte
		tabcompte.compteclient[ID_Compte].solde := tabcompte.compteclient[ID_Compte].solde - montant;	//On affiche le nouveau solde du client
		indicecompte2:=indicecompte(compte2,tabcompte); 									// Recherche l'indice du 2 compte
		writeln(indicecompte2);
		IF (indicecompte2<>-1) THEN
			tabcompte.compteclient[indicecompte2].solde := tabcompte.compteclient[indicecompte2].solde + montant;
		
	END;
	
Var 
	tabcompte:TTabCompte;

BEGIN
	tabcompte.compteclient[1].IDcompte:=1212;
	tabcompte.compteclient[1].IDclient:=123;
	tabcompte.compteclient[1].Libelle:='test';
	tabcompte.compteclient[1].taux:='12';
	tabcompte.compteclient[1].solde:=1500;
	tabcompte.compteclient[1].limite:=500;
	
	tabcompte.nbcompte:=1;

	
	virement(1212,tabcompte);
	WRITE(tabcompte.compteclient[1].solde);



END.



